/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.general.start;

  
import org.general.update.XMLLookReader;
import org.general.update.XMLReadArchivoReportes;
import org.general.update.XMLServidorReader;
import org.mybeans.Sesion;
import org.general.instalador.InstalarCarpetas;
import java.io.File;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.plaf.synth.SynthLookAndFeel;

 
/**
 *
 * @author avbravo
 */
public class Start {

    Sesion sesion;
    XMLServidorReader xMLServidorReader;

    InstalarCarpetas instalarCarpetas;
    XMLLookReader xMLLookReader;
    XMLReadArchivoReportes xMLReadArchivoReportes;
    CrearVersiones crearVersiones;
          
    Login login;

    @SuppressWarnings("static-access")
    public void IniciarSistema() {
        try {

            String osName = System.getProperty("os.name");

            osName = osName.toLowerCase();
            String directorioLib, directorioReport, directorioTemplates;

            File directorio;
            if (osName.equals("linux")) {

                directorio = new File("/home/avbravo/ingresos/lib/");
                directorio.mkdir();

                directorio = new File("/home/avbravo/ingresos/report/");
                directorio.mkdir();

                directorio = new File("/home/avbravo/ingresos/report/templates/");
                directorio.mkdir();

                directorio = new File("/home/avbravo/ingresos/backup/");
                directorio.mkdir();

            } else {

                directorio = new File("C:\\ingresos\\lib\\");
                directorio.mkdir();

                directorio = new File("C:\\ingresos\\report\\");
                directorio.mkdir();

                directorio = new File("C:\\ingresos\\report\\templates\\");
                directorio.mkdir();

                directorio = new File("C:\\ingresos\\backup\\");
                directorio.mkdir();

            }

    
            sesion = new Sesion();
            xMLServidorReader = new XMLServidorReader();
            xMLServidorReader.Leer();

            String ip = xMLServidorReader.getServidor();
            ip = ip.trim();

            String user = xMLServidorReader.getUser();
            user = user.trim();

            String password = xMLServidorReader.getPassword();
            if (password != null) {
                password = password.trim();
            } else {
                password = sesion.getPasswordDB();
            }


            String java_home = xMLServidorReader.getJava_home();
            java_home = java_home.trim();

            String mysql_home = xMLServidorReader.getMysql_home();
            mysql_home = mysql_home.trim();

            sesion.setServer(ip);
            sesion.setUserDB(user);
            sesion.setPasswordDB(password);
            sesion.setJava_home(java_home);
            sesion.setMysql_home(mysql_home);

            //--------------------------------*
            //Actualizacion Databases         *
            //--------------------------------*
            instalarCarpetas = new InstalarCarpetas();
            instalarCarpetas.CrearArchivosXMLNecesarios();

            instalarCarpetas.CrearCarpetaReport();

            instalarCarpetas.CrearCarpetaBackup();

            IngresosVersion ingresosVersion = new IngresosVersion();
            sesion.setVersion(ingresosVersion.getNumeroVersion());


            osName = System.getProperty("os.name");
            osName = osName.toLowerCase();
            String ruta, rutaDestino, rutaDescarga, rutaBackup;
            if (osName.equals("linux")) {
                ruta = "/home/avbravo/ingresos/report/templates/";
                rutaDestino = "/home/avbravo/ingresos/report/results/";
                rutaDescarga = "/home/avbravo/download/";
                rutaBackup = "/home/avbravo/ingresos/backup/";
            } else {
                ruta = "C:\\ingresos\\report\\templates\\";
                rutaDestino = "C:\\ingresos\\report\\templates\\results\\";
                rutaDescarga = "C:\\ingresos";
                rutaBackup = "C:\\ingresos\\backup\\";
            }


            sesion.setSistemaOperativo(osName);
            sesion.setRutaReportes(ruta);
            sesion.setRutaDestino(rutaDestino);
            sesion.setRutaBackup(rutaBackup);


            crearVersiones = new CrearVersiones();
            crearVersiones.Crear();
            sesion.setMensajeActualizarModulos("");

           
            if (sesion.ConsultarEncriptado() == false) {
                //quiere decir que no se ha encriptado los password
                //ejecutamos la encriptacion
                sesion.EncriptarTodosPassword();


            }

            for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(laf.getName())) {
                    UIManager.setLookAndFeel(laf.getClassName());
                    SynthLookAndFeel.setStyleFactory(
                            new MySynthStyleFactory(SynthLookAndFeel.getStyleFactory()));
                    break;
                }
            }

            /*
             * entrar al sistema
             */
         
             login = new Login();
             login.setLocationRelativeTo(null);
            login.setVisible(true);


        } catch (Exception ex) {
            if (ex.getMessage() == null) {
                JOptionPane.showMessageDialog(null, "Clase:Start.java\nMetodo:IniciarSistema()\nSugerencia elimine los archivos .xml\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

            } else {
                JOptionPane.showMessageDialog(null, "Clase:Start.java\nMetodo:IniciarSistema()\nError: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
            }

        }
    }
}